<?php
	require_once(dirname(__FILE__)."/incluir.php"); // inclui os dados e as classes necessárias ao criar o viale
	
	// Instancia as classes que serão usadas ao criar o viale
	$site = new Site();
	$guarda_dados = GuardaDados::getInstance();
	$gera_dados = new GeraDados();
	
	// Se não foi passado um valor válido de tabela retorna a index.php
	if(!$gera_dados->tabela_passada_valida($_GET))
	{
		$site->session->set_session_msg(ERRO,'Erro com o parametro tabela passado');
		header('Location: ./');
	}
	else
	{
		$tabela = $_GET['tabela'];
		$guarda_dados->set_tabela($tabela); // guarda a tabela (assim como valores dependentes dela) e gera o campo fields
		
		$gera_dados->tabela_atual = $tabela; // guarda a tabela em gera_dados para saber aonde salvar os arquivos
		$gera_dados->cria_viale($_POST); // Tenta criar o viale com os dados do $_POST (Se o $_POST estiver vazio, retornará null)
	}
	
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		
		<script src="../js/jquery/jquery.js" type="text/javascript"></script>
		<!-- Load TinyMCE -->
		<script type="text/javascript" src="../js/jquery/jquery.tinymce.js"></script>
		
		<style type="text/css">
		<!--
			@import url(../style/style.css);
		-->
		</style>
		<title>Gera Dados - Cria Viale</title>
	</head>
	<body>
		<div id="principal">
			<h1><?echo "Informações de configuração da tabela $tabela";?></h1><br />
			<form method="post" action="">
				<fieldset>
					<legend>Informações Gerais</legend>
					
					<label for="nome_entidade">Nome real: </label>
					<input type="text" id="nome_entidade" name="nome_entidade" value="<?php echo $guarda_dados->nome_entidade; ?>"  /><br />
					<?php echo $site->print_erro($gera_dados->erros["nome_entidade"]); ?>
					
					<label for="sufixo">Sufixo dos campos: </label>
					<input type="text" id="sufixo" name="sufixo" value="<?php echo $guarda_dados->sufixo; ?>"  />
					<small>(Aparecerá no final de todos os names dos campos)</small>
					<br />
					<?php echo $site->print_erro($gera_dados->erros["sufixo"]); ?>
					
					<label for="referencia">Referência: </label>
					<input type="text" id="referencia" name="referencia" value="<?php echo $guarda_dados->referencia; ?>"  />
					<small>(O campo que representa a tabela, exemplo: o nome do cliente)</small>
					<br />
					<?php echo $site->print_erro($gera_dados->erros["referencia"]); ?>
				</fieldset>
				<br />
				<fieldset>
					<legend>Dados de GERENCIAR (index.php)</legend>
					<label for="limit">Limite de elementos: </label>
					<input type="text" id="limit" name="limit" 
					value="<?php echo isset($guarda_dados->limit) ? $guarda_dados->limit : 10; ?>"  />
					<small>(Quantos elementos aparecem por página)</small>
					<br />
					<?php echo $site->print_erro($gera_dados->erros["limit"]); ?>
					
					<label for="sufixo">Range das páginas: </label>
					<input type="text" id="range" name="range" 
					value="<?php echo isset($guarda_dados->range) ? $guarda_dados->range : 3; ?>"  />
					<small>(Quantas páginas são mostradas antes e depois da atual)</small>
					<br />
					<?php echo $site->print_erro($gera_dados->erros["range"]); ?>
					
					<label for="sufixo">Offset Inicial: </label>
					<input type="text" id="offset_default" name="offset_default" 
					value="<?php echo isset($guarda_dados->offset_default) ? $guarda_dados->offset_default : 0; ?>"  />
					<small>(O primeiro elemento a ser mostrado)</small>
					<br />
					<?php echo $site->print_erro($gera_dados->erros["offset_default"]); ?>
				</fieldset>
				<br />
				<fieldset>
					<legend>Dados dos campos</legend>
					<table border="1px" cellspacing="5">
						<thead>
							<tr align="center">
								<th>Campo</th>
								<th>Valor DEFAULT <small>(deixe vazio se não tiver)</small></th>
								<th>Páginas que aparecerá <small>(separadas por vírgula, deixe vazio se o campo não deve ser visto)</small></th>
								<th>Erro específico do campo <small>(exemplo: erro do valor do email, cpf ou campo numérico não serem válidos)</small></th>
								<th>Erro do campo estar vazio <small>(não necessário para campos de valores numéricos)</small></th>
								<th>O tipo do campo<small>(select, checkbox, radio para tipos inteiros, chars e ENUM)</small></th>
								<th>Os possíveis valores do campo<small>(Modelo: valor pro banco1, valor exibido no html1, valor pro banco2, valor exibido no html2, etc..)</small></th>
								<th>É um campo múltiplo <small>(marque se for)</small></th>
							</tr>
						</thead>
						<tbody>
							<?php foreach($guarda_dados->fields as $index => $field):?>
								<tr align="center">
									<td><?php echo $field;?></td>
									
									<td>
										<input type="text" id="campos_valores_default<?php echo $index;?>" name="campos_valores_default[]"
										value="<?php echo ($field == "id") ? "DEFAULT" : $guarda_dados->campos_valores_default[$field];?>" />
									</td>
									
									<td>
										<input type="text" id="campos_paginas<?php echo $index;?>" name="campos_paginas[]" 
										value="<?php // O valor default é o campo aparecer em todas as páginas
										if($field != "id") // Se for id não escreve nada
											echo isset($guarda_dados->campos_paginas[$field]) ? $guarda_dados->campos_paginas[$field] : 'alterar,index,inserir,visualizar';?>"
										style="width:200px;" />
									</td>
									
									<td>
										<input type="text" id="mensagem_erro_campo<?php echo $index;?>" name="mensagens_erro_campos[]"
										value="<?php echo $guarda_dados->mensagens_erro_campos[$index];?>"
										style="width:250px;" />
									</td>
									
									<td>
										<input type="text" id="mensagem_erro_campo_not_empty<?php echo $index;?>" name="mensagens_erro_campos_not_empty[]" 
										value="<?php echo $guarda_dados->mensagens_erro_campos_not_empty[$index];?>"
										style="width:250px;" />
									</td>
									
									<td>
										<select id="tipo_campo<?php echo $index;?>" name="tipos_campos[]" style="width:90px;">
											<option value="nenhum">Nenhum</option>
											<?php if((stristr($guarda_dados->types[$field], 'int') != false) || (stristr($guarda_dados->types[$field], 'enum') != false)
											 || substr($guarda_dados->types[$field], 0, 4)  == "char"): // Se começar com char?>
												<option value="select">Select</option>
												<option value="checkbox">Checkbox</option>
												<option value="radio">Radio</option>
											<?php endif;?>
										</select>
									</td>
									
									<td>
										<input type="text" id="valor_campo<?php echo $index;?>" name="valores_campos[]"
										style="width:250px;" /><br />
									</td>
									
									<td>
										<input type="checkbox" id="campos_multiplos<?php echo $index;?>" name="campos_multiplos[]" 
										<?php if(is_array($guarda_dados->campos_multiplos)) // Se esse array já está preenchido
												 echo in_array($field, $guarda_dados->campos_multiplos) ? 'checked="checked"' : ""; ?>
									/>
									</td>
								</tr>
							<?php endforeach;?>
						</tbody>
					</table>
				</fieldset>
				<br />
				<fieldset>
					<legend>Mensagens de Sucesso e de Erro das páginas</legend>
					<label for="mensagem_sucesso_inserir">Mensagem de sucesso ao inserir:</label>
					<input type="text" id="mensagem_sucesso_inserir" name="mensagem_sucesso_inserir"
						style="width: 400px; margin-left:20px;"
						value="<?php echo $guarda_dados->mensagem_sucesso_inserir; ?>" /><br/>
						
					<label for="mensagem_erro_inserir">Mensagem de erro ao inserir:</label>&nbsp;
					<input type="text" id="mensagem_erro_inserir" name="mensagem_erro_inserir"
						style="width: 400px; margin-left:38px;" 
						value="<?php echo $guarda_dados->mensagem_erro_inserir; ?>"/><br/>
					<br/>
					
					<label for="mensagem_sucesso_alterar">Mensagem de sucesso ao alterar:</label>
					<input type="text" id="mensagem_sucesso_alterar" name="mensagem_sucesso_alterar"
						style="width: 400px; margin-left:20px;"
						value="<?php echo $guarda_dados->mensagem_sucesso_alterar; ?>" /><br/>
						
					<label for="mensagem_erro_alterar">Mensagem de erro ao alterar:</label>&nbsp;
					<input type="text" id="mensagem_erro_alterar" name="mensagem_erro_alterar"
						style="width: 400px; margin-left:38px;" 
						value="<?php echo $guarda_dados->mensagem_erro_alterar; ?>"/><br/>
					<br/>
					
					<label for="mensagem_sucesso_excluir">Mensagem de sucesso ao excluir:</label>
					<input type="text" id="mensagem_sucesso_excluir" name="mensagem_sucesso_excluir"
						style="width: 400px; margin-left:20px;"
						value="<?php echo $guarda_dados->mensagem_sucesso_excluir; ?>" /><br/>
						
					<label for="mensagem_erro_excluir">Mensagem de erro ao excluir:</label>&nbsp;
					<input type="text" id="mensagem_erro_excluir" name="mensagem_erro_excluir"
						style="width: 400px; margin-left:38px;"
						value="<?php echo $guarda_dados->mensagem_erro_excluir; ?>"/><br/>
				</fieldset>
				<br />
				<fieldset>
					<legend>Dado de Relacionamento</legend>
					<p>
						Coloque as tabelas, que também são afetadas ao excluir essa entidade, separadas por virgula.<br />
						No outro campo coloque os ids, também separados por vírgula, das respectivas tabelas que identificam essa tabela.<br/>
						Exemplo para uma tabela gerente que deve ter registros de clientes excluidos: Tabelas: cliente &nbsp; IDs: gerente_id <br/>
						(deixe ambos os campos vazios, se nenhuma tabela depende dessa)
					 </p>
					Tabelas: <input type="text" id="tabelas_excluir_nomes" name="tabelas_excluir_nomes" />&nbsp;
					IDs: <input type="text" id="tabelas_excluir_ids" name="tabelas_excluir_ids" />
				</fieldset>
				<fieldset>
					<p>
						<input type="submit" value="Criar Viale" /> &nbsp; 
						<input type="button" value="Cancelar" onclick="javascript: window.location='./';" />
					</p>
				</fieldset>
			</form>
		</div>
	</body>
</html>